import jieba
from matplotlib import pyplot as plt
from wordcloud import WordCloud
from PIL import Image  # 图像绘制
import numpy as np  # 矩阵运算
import pymysql

# 打开数据库连接
db = pymysql.connect(host='localhost', port=3306, user='root', passwd='123456', db='test', charset='utf8')

# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()

# 使用 execute()  方法执行 SQL 查询
sql = "SELECT instroduction from movie250"
cursor.execute(sql)
# 使用 fetchone() 方法获取数据.
data = cursor.fetchall()  # 所有电影的一句话概况
text = ""
for item in data:
    text = text + item[0]
# print(text)

# 关闭游标对象
cursor.close()
# 关闭数据库连接
db.close()


cut = jieba.cut(text)
string = ' '.join(cut)
# print(len(string))  # 5461 词数

img = Image.open('tree.jpg')  # 打开遮罩图片
img_array = np.array(img)  # 将图片转换为数组
# 封装词云对象
wc = WordCloud(
    background_color="white",
    mask=img_array,
    font_path="STXINGKA.TTF"  # 字体所在位置：C:\Windows\Fonts
)
wc.generate_from_text(string)

# 绘制图片
fig = plt.figure(1)  # 1表示找第一个位置
plt.imshow(wc)
plt.axis('off')  # 是否显示坐标轴

plt.show()  # 显示生成的词云图片

# 输出词云图片到文件
# savapath = r'..\static\assets\img\word.jpg'
# plt.savefig(savapath,dpi=500)
